package cn.iocoder.yudao.module.biz.dal.mysql.licencePerson;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.biz.controller.admin.licencePerson.vo.BizLicencePersonExportReqVO;
import cn.iocoder.yudao.module.biz.controller.admin.licencePerson.vo.BizLicencePersonPageReqVO;
import cn.iocoder.yudao.module.biz.dal.dataobject.licencePerson.BizLicencePersonDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 作业人员 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface BizLicencePersonMapper extends BaseMapperX<BizLicencePersonDO> {

    default PageResult<BizLicencePersonDO> selectPage(BizLicencePersonPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<BizLicencePersonDO>()
                .likeIfPresent(BizLicencePersonDO::getWorkerName, reqVO.getWorkerName())
                .eqIfPresent(BizLicencePersonDO::getCertification, reqVO.getCertification())
                .betweenIfPresent(BizLicencePersonDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
                .eqIfPresent(BizLicencePersonDO::getDeptId, reqVO.getDeptId())
                .eqIfPresent(BizLicencePersonDO::getLicenceId,reqVO.getLicenceId())
                .orderByDesc(BizLicencePersonDO::getId));
    }

    default List<BizLicencePersonDO> selectList(BizLicencePersonExportReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<BizLicencePersonDO>()
                .likeIfPresent(BizLicencePersonDO::getWorkerName, reqVO.getWorkerName())
                .eqIfPresent(BizLicencePersonDO::getCertification, reqVO.getCertification())
                .eqIfPresent(BizLicencePersonDO::getLicenceId,reqVO.getLicenceId())
                .betweenIfPresent(BizLicencePersonDO::getCreateTime, reqVO.getBeginCreateTime(), reqVO.getEndCreateTime())
                .eqIfPresent(BizLicencePersonDO::getDeptId, reqVO.getDeptId())
                .orderByDesc(BizLicencePersonDO::getId));
    }

    default List<BizLicencePersonDO> selectListInLicenceIds(List<String> licenceIds){
        return selectList(new LambdaQueryWrapperX<BizLicencePersonDO>()
                .in(BizLicencePersonDO::getLicenceId,licenceIds));
    }

}
